package com.han.walkman.service;

import com.han.walkman.entity.VisitingPlanEntity;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

/**
 * @Author: Hanjiafeng
 * @Date: 2020/5/15
 * @Desc:
 */
public interface VisitingPlanService {

    /**
     * 增
     *
     * @param visitingPlanEntity 计划
     */
    void add(VisitingPlanEntity visitingPlanEntity);

    /**
     * 删
     *
     * @param visitingPlanEntityList 计划
     */
    void deleteList(List<VisitingPlanEntity> visitingPlanEntityList);

    /**
     * 改
     *
     * @param visitingPlanEntity 计划
     */
    void update(VisitingPlanEntity visitingPlanEntity);

    /**
     * 分页查询
     *
     * @param pageable 页
     * @return list
     */
    Page<VisitingPlanEntity> findAll(Pageable pageable);

    /**
     * 查询符合条件的全部
     *
     * @param entityExample 条件
     * @return list
     */
    List<VisitingPlanEntity> findAll(Example<VisitingPlanEntity> entityExample);

    /**
     * 按条件分页查询
     *
     * @param entityExample 条件
     * @param pageable      分页
     * @return list
     */
    Page<VisitingPlanEntity> findAll(Example<VisitingPlanEntity> entityExample, Pageable pageable);

    /**
     * 根据id搜索
     *
     * @param id 产品id
     * @return 产品
     */
    Optional<VisitingPlanEntity> findById(Integer id);

    /**
     * 查询今天之前的拜访计划
     *
     * @return 今天之前的拜访计划list
     */
    List<VisitingPlanEntity> findAllBeforeDate();
}
